// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at https://mozilla.org/MPL/2.0/.

// These are general styles for elements/components that occur on every page.
// Individual pages may include additional component styles as needed.
@use '~@mozilla-protocol/core/protocol/css/includes/lib' as * with ($brand-theme: 'mozilla', $type-scale: 'standard', $font-path: '/media/protocol/fonts', $image-path: '/media/protocol/img');
@use '~@mozilla-protocol/core/protocol/css/includes/themes';
@use '~@mozilla-protocol/core/protocol/css/components/forms/form';

// Fonts
// NOTE: Inter is used as a fallback for specific l10n cases
@import '~@mozilla-protocol/core/protocol/css/includes/fonts/mozilla-headline';
@import '~@mozilla-protocol/core/protocol/css/includes/fonts/mozilla-text';

// Base elements - general HTML elements
@import '~@mozilla-protocol/core/protocol/css/base/elements';

// Base includes - animations
@import '~@mozilla-protocol/core/protocol/css/base/includes';

// Utility includes
@import '~@mozilla-protocol/core/protocol/css/base/utilities/backgrounds';
@import '~@mozilla-protocol/core/protocol/css/base/utilities/titles';

// Global components
@import '~@mozilla-protocol/core/protocol/css/components/button';
@import 'components/download-button';

// Consent banner
@import '~@mozmeao/consent-banner/styles';

// Custom global components for nav and footer
// These will later be backported to Protocol
@import 'components/sub-navigation';

// Mozilla 2024 brand variables
@import '../m24/vars/color';
@import '../m24/vars/text';

// Temporary styling until the newsletter component is updated in Protocol
// https://github.com/mozilla/protocol/issues/578

.mzp-c-newsletter-subtitle {
    @include text-title-xs;
}

.mzp-c-newsletter-desc {
    @include text-body-md;
}

.mzp-c-newsletter-details legend {
    font-family: var(--body-font-family);
}

#newsletter-submit + .mzp-c-fieldnote {
    @include text-body-xs;
    margin: 0 auto;
    max-width: 30em;
}

#newsletter-submit {
    position: relative;
}

#newsletter-submit .submit-loading {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

// style classes automatically added by python to match Protocol form error styles
.errorlist {
    @include white-links;
    background-color: form.$form-red;
    border-radius: form.$field-border-radius;
    color: $color-white;
    padding: $spacing-sm;
    margin-bottom: $spacing-xl;
}

.error-msg {
    @include light-links;
    background-color: form.$form-red;
    border-radius: form.$field-border-radius;
    color: $color-white;
    padding: $spacing-sm;
    margin-bottom: $spacing-xl;
}

// hide <template> elements in the DOM.
template {
    display: none !important; /* stylelint-disable-line declaration-no-important */
}

// temporary override for Mozilla Monitor word mark
.mzp-c-wordmark.t-product-mozilla-monitor {
    background-image: url('/media/img/logos/mozilla/monitor/wordmark.svg');
}

/* ----------------------------------------------------------------------------- */
// Mozilla 2024 brand theme
:root {
    // colors
    --background-color-tertiary-inverse: #{$m24-color-dark-gray};
    --background-color-tertiary: #{$m24-color-light-gray};
    --background-color-secondary-inverse: #{$m24-color-dark-gray};
    --background-color-secondary: #{$m24-color-light-gray};
    --background-color-inverse: #{$m24-color-black};
    --background-color: #{$m24-color-white};
    --body-text-color-secondary-inverse: #{$m24-color-light-gray};
    --body-text-color-secondary: #{$m24-color-dark-gray};
    --body-text-color-inverse: #{$m24-color-white};
    --body-text-color: #{$m24-color-black};
    --link-color-hover-inverse: #{$m24-color-light-green};
    --link-color-hover: #{$m24-color-dark-green};
    --link-color-inverse: #{$m24-color-white};
    --link-color-visited-hover-inverse: #{$m24-color-white};
    --link-color-visited-hover: #{$m24-color-dark-green};
    --link-color-visited-inverse: #{$m24-color-light-gray};
    --link-color-visited: #{$m24-color-dark-gray};
    --link-color: #{$m24-color-black};
    --title-text-color-inverse: #{$m24-color-white};
    --title-text-color: #{$m24-color-black};
}

.mzp-t-dark {
    color: var(--body-text-color-inverse);

    h1, h2, h3, h4, h5, h6 {
        color: var(--title-text-color-inverse);
    }
}

button,
input,
select,
optgroup,
textarea {
    font-family: var(--body-font-family);
}

.mzp-c-card .mzp-c-card-content .mzp-c-card-tag {
    font-family: var(--body-font-family);
}

// Keep the old link colors on Firefox-branded pages
body.mzp-t-firefox {
    --link-color-hover-inverse: #{$color-blue-05};
    --link-color-hover: #{$color-link-hover};
    --link-color-inverse: #{$color-blue-10};
    --link-color-visited-hover-inverse: #{$color-violet-05};
    --link-color-visited-hover: #{$color-link-hover};
    --link-color-visited-inverse: #{$color-violet-10};
    --link-color-visited: #{$color-link-visited};
    --link-color: #{$color-link};
}
